home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / aspell-import < prev    next >
Text File  |  2009-09-09  |  2KB  |  85 lines

  1. #!/usr/bin/perl
  2.  
  3. #
  4. # aspell-import -- Perl script to import old dictionaries
  5. #
  6. # This file is part of The New Aspell
  7. # Copyright (C) 2001-2002 by Kevin Atkinson under the GNU LGPL
  8. # license version 2.0 or 2.1.  You should have received a copy of the
  9. # LGPL license along with this library if you did not you can find it
  10. # at http://www.gnu.org/.
  11.  
  12.  
  13.  
  14. %abrv = qw( american     en
  15.         british      en
  16.         canadian     en
  17.         catala       ca
  18.         czech        cs
  19.         dansk        da
  20.         deutsch      de
  21.         ellhnika     el
  22.         english      en
  23.         espanol      es
  24.         esperanto    eo
  25.         francais     fr
  26.         german       de 
  27.         italian      it
  28.         liet         lt
  29.         nederlands   nl
  30.         norsk        no
  31.         polish       pl
  32.         portugues    pt
  33.         russian      ru
  34.         svenska      sv);
  35.  
  36. chdir $ENV{HOME};
  37.  
  38. foreach $file (<.ispell_*>, <.aspell.*.*>)
  39. {
  40.   $_ = $file;
  41.   if    (/^.ispell_(.+)$/)            {$lang = $1; $type = 'ispell'}
  42.   elsif (/^.aspell.(.+?).(per|pws)$/) {$lang = $1; $type = 'personal'}
  43.   elsif (/^.aspell.(.+?).(prepl)$/)   {$lang = $1; $type = 'repl'}
  44.   $abrv = $abrv{$lang};
  45.   if (not defined $abrv) {
  46.     print "Warning language \"$lang\" is not known\n" unless length $lang == 2;
  47.     next;
  48.   }
  49.   open IN, $file;
  50.   print "Processing \"~/$file\", lang = $abrv\n";
  51.   if ($type eq 'ispell' || $type eq 'personal') {
  52.     <IN> if $type eq 'personal';
  53.     while (<IN>) {
  54.       chop; 
  55.       push @{$words{$abrv}{per}}, $_;
  56.     }
  57.   } elsif ($type eq 'repl') {
  58.     $_ = <IN>;
  59.     if (!/^personal\_repl\-1\.1/) {
  60.       print "$file not in a supported format\n";
  61.       next;
  62.     }
  63.     while (<IN>) {
  64.       /^([^ ]+) (.+)\n$/ or die;
  65.       push @{$words{$abrv}{repl}}, [$1,$2];
  66.     }
  67.   }
  68.   close IN;
  69. }
  70.  
  71. $SIG{PIPE} = 'IGNORE';
  72.  
  73. foreach $abrv (keys %words) {
  74.   print "Merging $abrv\n";
  75.   open P, "| aspell -a --lang=$abrv --sug-mode=ultra" or next;
  76.   foreach (@{$words{$abrv}{per}}) {
  77.     print P "* $_\n";
  78.   }
  79.   foreach (@{$words{$abrv}{repl}}) {
  80.     print P "\$\$ra $_->[0],$_->[1]\n";
  81.   }
  82.   print P "#\n";
  83.   close P;
  84. }
  85.